For applications with datasets disposed in a grid, it is often necessary to interpolate the values between the available data points. For example, for meteorological data the data may include elements such as temperature, humidity and pressure, the data points disposed on a grid, and potentially at different altitude levels within the geographical grid. For applications such as weather forecasting, the data is used as an input to simulations, which can then extrapolate likely parameters from the initial dataset. In many cases, however, the scale of the required forecast and hence of the necessary simulation may be at a different scale to that of the original gridded data, and in the circumstances it is necessary to generate interpolated data points, that is additional data points located between the original data points, on a different scale. It is known generate interpolated data points within a data grid using a 16×16 transformation matrix. It will be apparent that the processing associated with doing a matrix algebra using a 16×16 matrix for every required interpolated data point is extremely substantial, and as such a way of reducing the computational load is desirable